package ink.tiptop.dto.req.remote;

import com.fasterxml.jackson.annotation.JsonProperty;
import ink.tiptop.annotation.EnumValue;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * 服务远程视图(ZjfServiceRemoteView)请求查询类
 *
 * @author zjf
 * @since 2020-07-22 08:45:34
 */
@Getter
@Setter
public class UpdateZjfServiceRemoteViewRequest implements Serializable {
    private static final long serialVersionUID = -86845999737644912L;
    /**
    * 服务唯一 ID
    */    
    @JsonProperty("ID")
    @NotNull(message = "唯一ID不能为空")
    private Integer id;
    /**
    * service所属的父路径//opt/app/
    */    
    @JsonProperty("PARENT")
    private String parent;
    /**
    * service名称,如 webwork
    */    
    @JsonProperty("NAME")
    private String name;
    /**
    * 依赖分离的lib相对目录/lib
    */    
    @JsonProperty("LIB")
    private String lib;
    /**
    * 配置分离的相对配置目录/resource
    */    
    @JsonProperty("RESOURCE")
    private String resource;
    /**
    * 启动/重启命令相对路径,如: /bin/start.sh
    */    
    @JsonProperty("BIN_START")
    private String binStart;
    /**
    * 启动/重启命令相对路径,/bin/stop.sh
    */    
    @JsonProperty("BIN_STOP")
    private String binStop;
    /**
     * 启动优先级0最高 99最低
     */
    @JsonProperty("ORDER")
    @Min(value = 0,message = "启动优先级最低0")
    @Max(value = 99,message = "启动优先级最高99")
    private Integer order;
    /**
    * 关联服务器配置信息
    */    
    @JsonProperty("SERVER_ID")
    private Integer serverId;
    /**
     * 描述
     */
    @JsonProperty("DESC")
    private String desc;

    /**
     * 0:不忽视,1:忽视
     */
    @JsonProperty("IGNORE")
    @EnumValue(intValues = {0,1},message = "是否忽略值传递有误")
    private Integer ignore;
}